class_name RemoveDamageImmunityEffect
extends Effect

var dmg_taken_modifier: Modifier

func execute(targets: Array[Node]) -> void:
	print("🔄 RemoveDamageImmunityEffect.execute() 被调用")
	
	# 优先使用传入的目标，如果失败则使用保存的修改器引用
	for target in targets:
		if not target or not is_instance_valid(target):
			continue
		if target is Player:
			_remove_immunity_from_player(target)
			return
	
	# 如果没有有效目标，尝试使用保存的修改器引用
	if dmg_taken_modifier and is_instance_valid(dmg_taken_modifier):
		dmg_taken_modifier.remove_value("withered_wood_immediate_immunity")
		print("🔄 枯木护盾伤害免疫效果已移除（通过保存的修改器引用）")
	else:
		print("❌ 无法移除免疫效果：没有有效的目标或修改器引用")

func _remove_immunity_from_player(player: Player) -> void:
	# 重新获取修改器，确保引用有效
	var current_modifier = player.modifier_handler.get_modifier(Modifier.Type.DMG_TAKEN)
	if current_modifier:
		current_modifier.remove_value("withered_wood_immediate_immunity")
		print("🔄 枯木护盾伤害免疫效果已移除（玩家: %s）" % player.name)
	else:
		print("❌ 无法获取玩家的伤害修改器") 
